package com.itxiuyixiu.entity.mapper;

import com.itxiuyixiu.entity.model.Student;
import com.itxiuyixiu.entity.model.StudentView;

import java.util.List;
import java.util.Optional;

/**
 * @author 黄磊
 * @date 2020/5/3
 */
public interface StudentReaderMapper {
    /**
     * 根据studentId查询学生信息
     *
     * @param studentId 学号
     * @return 学生信息
     */
    Optional<Student> findStudentByStudentId(String studentId);

    /**
     * 根据sId查询学生信息
     *
     * @param sId 学生表id
     * @return 学生信息
     */
    Optional<Student> findStudentBySId(Integer sId);

    /**
     * 根据userId查询学生信息
     *
     * @param userId 用户id
     * @return 学生信息
     */
    Optional<Student> findStudentByUserId(Integer userId);

    /**
     * 根据用户名查询学生信息
     *
     * @param username 用户名
     * @return 学生信息
     */
    Optional<Student> findStudentByUsername(String username);

    /**
     * 查询所有的学生
     *
     * @return 学生信息
     */
    List<Student> findAllStudent();

    /**
     * 查询学号是否存在
     *
     * @param studentId 学号
     * @return true-存在，false-不存在
     */
    boolean existStudentByStudentId(String studentId);

    /**
     * 视图
     * 根据studentId查询学生信息
     *
     * @param studentId 学号
     * @return 学生信息
     */
    Optional<StudentView> findStudentViewByStudentId(String studentId);

    /**
     * 视图
     * 根据sId查询学生信息
     *
     * @param sId 学生表id
     * @return 学生信息
     */
    Optional<StudentView> findStudentViewBySId(Integer sId);

    /**
     * 根据userId查询学生视图信息
     *
     * @param userId 用户id
     * @return 学生信息视图
     */
//    Optional<StudentView> findStudentViewByUserId(Integer userId);

    /**
     * 根据用户名查询学生信息视图
     *
     * @param username 用户名
     * @return 学生信息视图
     */
//    Optional<StudentView> findStudentViewByUsername(String username);

    /**
     * 查询所有的学生视图
     *
     * @return 学生信息
     */
    List<StudentView> findAllStudentView();

}
